let anndroid=`
安卓笔记

#$
#动态改变控件大小
ImageView imgRect;
ViewGroup.LayoutParams lp = imgRect.getLayoutParams();
		lp.width = ViewGroup.LayoutParams.MATCH_PARENT; 
		lp.height = (int) ((imgRect.getHeight() * 58 + 4) * getResources().getDisplayMetrics().density);
		
#$
透明度
例：android:background="#A6000000" 表示 65% 的透明度。

100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5%  — 0D
0% —  00
#$
布局
1.线性布局
  *方向:只能在一个方向摆放控件,超出不会自动换行
  *重力(对齐方式):android:gravity="top|right"  顶部右对齐
    动态设置重力:.setOr...(LinearLayout.VERCITAL)
  *权重:设置在控件上,android:weight="1"表示控件比例占一份需要设置宽或高属性为0dp

2.相对布局(对于容器是真假值,相对于控件是id)
  android:layout_centerInParent="true"基于父类居中
  
  android:layout_above="@id/button1"在id为button1的上面
  
  android:layout_toLeftOf="@id/button1"在button1左边
  
  android:layout_alignLeft="@id/button1"基于button1左对齐
  
  android:layout_below="@id/button3"在button3的下面
  


/*
//多个控件绑定同一个事件
	*btn.setOnClickListener(this); //传this需要implements OnClickListener接口,然后本类中定义OnClick方法
	*所有click事件点击都触发这里
	*定义此方法,不是重写
	*/
	public void onClick(View v) {
		switch (v.getId()) {
			case R.id.BtnTest:
				grayscale();
				Log.i("onClick", "BtnGrayscale");
				break;
			case R.id.back:
				Log.i("onClick", "two");
				break;
			case R.id.action_bar:
				Log.i("onClick", "three");
				break;
			default:
				break;
		}
		}//onClick

#$
当前时间毫秒
System.currentTimeMillis()
#$


getSystemService是Android很重要的一个API
//1.首先用参数MEDIA_PROJECTION_SERVICE调用Context.getSystemService()，得到MediaProjectionManager类别实例。
MediaProjectionManager mMediaProjectionManager=(MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
				
#$
// 普通线程里更新UI
		new Thread(new Runnable() {
				@Override
				public void run() {
					// 在Runnable中进行网络操作
					try
					{
						
						//这里执行耗时操作
						Socket socket = new Socket("127.0.0.1", 8888);
					}
					catch (IOException e)
					{}

					
					// 在子线程中实例化Handler同样是可以的，只要在构造函数的参数中传入主线程的Looper即可
					Handler handler = new Handler(Looper.getMainLooper());
					// 通过Handler的post Runnable到UI线程的MessageQueue中去即可
					handler.post(new Runnable() {//更新控件属性
							@Override
							public void run() {
								// 在MessageQueue出队该Runnable时进行的操作
							textV.append("测试的东西");
							}
						});
				}
			}).start();

#$
package com.majun.hui;

import android.app.*;
import android.os.*;
import android.widget.*;

public class MainActivity extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
//该界面对应的布局是main
//R表示一个类,layout为内部类,main是一个int类型的常量
//R类是动态生成的
	setContentView(R.layout.main);	
//找到id为tv的text控件	
TextView tv=findViewById(R.id.tv);
 //设置控制文本       
tv.setText("先森新疆的就看到");
		
		}
	
}
#$
//线程中使用吐司需要这样
Looper.prepare();
	Toast.makeText(SocketActivity.this,new String(bytes,0,len),Toast.LENGTH_LONG).show();
Looper.loop();
#$






`;